package com.example.shop.common.service;

import com.example.shop.common.dto.face.FaceRecognitionReturnResult;

import java.util.List;

public interface FaceRecognitionService {
    /**
     * 根据传入的人脸，进行人脸识别，查找该人脸唯一标识绑定的用户
     * @param faceBase64 人脸
     * @return 返回人脸绑定的用户的唯一标识。异常出错则返回null,但是如果该异常是set为空，则是没问题的
     */
    public FaceRecognitionReturnResult faceRecognition(String faceBase64);

    /**
     * 识别图片中所有人脸
     * @param faceBase64 人脸base64
     * @return 人脸的数目
     */
    public int detectFaceNum(String faceBase64);

    /**
     *  识别图片中人脸对应的唯一标识faceBaseToken
     * @param faceBase64
     * @return 如果图片中的人脸无法识别出来，则返回null
     */
    public List<String> detectFaceToken(String faceBase64);

    /**
     * 将用户的唯一标识与该人脸进行绑定。
     * @param userId 用户唯一标识
     * @param faceToken 该人脸在该平台中的唯一标识
     * @return 如果绑定成功，则返回true，否则返回false
     */
    public boolean userIdentificationFace(String userId,String faceToken) throws Exception;

    /**
     * 从人脸平台中删除对应的人脸相关的信息
     * @param faceToken
     * @return
     */
    public  boolean removeFaceToSet(String faceToken) throws Exception;

    /**
     * 请求人脸平台添加一个人脸相关的信息
     * @param faceToken 标识该人脸的唯一标识
     * @return 添加成功返回true，否则返回false(要么该人脸已经添加过了，要么没有添加过)
     */
    public boolean addFaceToSet(String faceToken) throws Exception;



}
